package leetcode_200;

import java.util.ArrayList;
import java.util.List;

/**
 *@author 周杨
 *PascalTriangle_118 构造杨辉三角
 *describe:AC 100%
 *2018年5月22日 下午2:03:40
 */
public class PascalTriangleII_119 {
	List<List<Integer>> res;
	int numRows;
	public static void main(String[] args) {
		PascalTriangleII_119 test=new PascalTriangleII_119();
		test.generate(2);

	}
	
	public List<List<Integer>> generate(int numRows) {
		this.numRows=numRows;
		this.res=new ArrayList<List<Integer>>();
		List<Integer> list=new ArrayList<Integer>();
		list.add(1);
        help(list,1);
        return this.res;
    }

	private void help(List<Integer> list, int numRows) {
		if(numRows==this.numRows+1)
			return ;
		List<Integer> nowList=new ArrayList<Integer>();//当前生成第i行
		nowList.add(1);
		int count=(numRows+1)/2-1;//只计算一半 不算第一个  如第三行 计算2个  第五行 计算3个
		for(int i=0;i<count;++i) {
			nowList.add(list.get(i)+list.get(i+1));
		}
		int total=(numRows)%2==1?nowList.size()-1:nowList.size();//复制几个数
		for(int i=total-1;i>=0;--i) {//复制前面的
			nowList.add(nowList.get(i));
		}
		this.res.add(nowList);
		help(nowList,numRows+1);
	}
}
